#pragma once

#include "Cadena.h"
#include "Iterador.h"
#include "Puntero.h"

#include "IRecurso.h"

class ICiudad abstract
{
public:
	virtual ~ICiudad();

	virtual Cadena ObtenerNombre() const abstract;
	virtual Puntero<Iterador<pRecurso>> Recursos() const abstract;
	virtual bool TieneRecurso(Cadena recurso) const abstract;

	virtual bool operator==(const ICiudad& ciudad) const;
};

typedef Puntero<ICiudad> pCiudad;